#include <pthread.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>


void * thread_callback(void * argv)
{
    printf("我是子线程，参数为 = %s\n",(char *)argv);
    //return NULL; 
    pthread_exit(NULL); //这个和return 是一样的
} 


int main(int argc, char const *argv[])
{
    // 创建一个线程
    //int pthread_create(pthread_t * thread,           存储新线程的线程标识符
    //                   const pthread_attr_t *attr,   来设置线程的内存大小优先级等  NULL 表示默认
    //                   void *(*start_routine)(void *), 新线程的函数指针
    //                   void *arg);                     新线程函数的参数
    //return                                             返回0 表示成功 返回非0  表示创建失败
    pthread_t thread;  //存储新线程的线程标识符
    //创建线程
    pthread_create(&thread,NULL,thread_callback,"Thread 1");
    printf("我是主线程...\n");

    //不回收子线程 就算不接收子线程的返回值
    pthread_detach(thread);

    //需要加一个睡眠时间  当主线程结束  子线程也会被结束 不会再运行 子线程的返回值直接不管
    sleep(2);
    return 0;
}